A typical approach to testing computer programs or applications is to input test data to the application, capture the response of the application to this input, and determine if the response is correct given the known input. In some cases, an ordered sequence of input and output pairs may comprise a logically complete interaction, transaction, or session with the application under test. Some applications must be tested to assure they work properly when under the stress of heavy work loads. For example, it is not enough to assure that a web site server can handle one request correctly over a fifteen minute interval, it may be necessary to verify that the web site server can handle hundreds of requests per second from many clients without failing. Testing by placing a heavy work load on the application may be referred to as stress testing.
Software test drivers are frequently developed to support testing software applications. A test driver is a computer program which interacts with and probes the software under test to determine if it satisfies requirements. Software test drivers are often built to support a standard communication interface, for example, Java Message Service (JMS) messages, common object request broker architecture (CORBA) service object method calls, Java remote method invocation (RMI), UNIX socket communications, as a means to communicate with the software application under test.